home *** CD-ROM | disk | FTP | other *** search
/ Aminet 3 / Aminet 3 - July 1994.iso / Aminet / dev / gui / GenCodeE_14.lha / GenCodeE / V1.4 / E / small / Small_procs.e < prev    next >
Encoding:
Text File  |  1994-04-23  |  3.2 KB  |  110 lines

  1.     /* This procedure creates one app object */
  2. PROC create_app()
  3.  
  4.     DEF app, wi_smallexample, grOUP_ROOT_0, gr_lists, lv_label_0
  5.     DEF lv_label_1, gr_grp_1, bt_ok, bt_cancel
  6.  
  7.     DEF tmp_object : PTR TO obj_app
  8.  
  9.     IF ( tmp_object := New( SIZEOF obj_app ) ) = NIL THEN RETURN NIL
  10.  
  11.  
  12.     app := ApplicationObject,
  13.         MUIA_Application_Author, 'Eric Totel',
  14.         MUIA_Application_Base, 'SMALL',
  15.         MUIA_Application_Title, 'Small_Example',
  16.         MUIA_Application_Version, '$VER : Small 1.0',
  17.         MUIA_Application_Copyright, '(c) 1993 Eric Totel',
  18.         MUIA_Application_Description, 'Here is a small example of MUI-Builder',
  19.         MUIA_HelpFile, 'small.guide',
  20.         SubWindow, wi_smallexample := WindowObject,
  21.             MUIA_Window_Title, 'Small example',
  22.             MUIA_HelpNode, 'WI_smallexample',
  23.             MUIA_Window_ID, MAKE_ID( "0", "W", "I", "N" ),
  24.             WindowContents, grOUP_ROOT_0 := GroupObject,
  25.                 Child, gr_lists := GroupObject,
  26.                     GroupFrameT( 'two lists' ),
  27.                     MUIA_HelpNode, 'GR_lists',
  28.                     MUIA_Group_Horiz, MUI_TRUE,
  29.                     Child, lv_label_0 := ListviewObject,
  30.                         MUIA_HelpNode, 'LV_label_0',
  31.                         MUIA_Listview_List, DirlistObject,
  32.                             InputListFrame,
  33.                             MUIA_Dirlist_Directory, 'progdir:',
  34.                             MUIA_Dirlist_DrawersOnly, FALSE,
  35.                             MUIA_Dirlist_FilesOnly, FALSE,
  36.                             MUIA_Dirlist_FilterDrawers, FALSE,
  37.                             MUIA_Dirlist_MultiSelDirs, FALSE,
  38.                             MUIA_Dirlist_RejectIcons, FALSE,
  39.                             MUIA_Dirlist_SortDirs, MUIV_Dirlist_SortDirs_First,
  40.                             MUIA_Dirlist_SortHighLow, FALSE,
  41.                             MUIA_Dirlist_SortType, 0,
  42.                         End,
  43.                     End,
  44.                     Child, lv_label_1 := ListviewObject,
  45.                         MUIA_HelpNode, 'LV_label_1',
  46.                         MUIA_Listview_MultiSelect, MUIV_Listview_MultiSelect_Default,
  47.                         MUIA_Listview_List, VolumelistObject,
  48.                             InputListFrame,
  49.                             MUIA_Listview_DoubleClick, MUI_TRUE,
  50.                         End,
  51.                     End,
  52.                 End,
  53.                 Child, gr_grp_1 := GroupObject,
  54.                     MUIA_HelpNode, 'GR_grp_1',
  55.                     MUIA_Group_Horiz, MUI_TRUE,
  56.                     MUIA_Group_SameWidth, MUI_TRUE,
  57.                     Child, bt_ok := KeyButton( 'OK', "o" ),
  58.                     Child, bt_cancel := KeyButton( 'Cancel', "c" ),
  59.                 End,
  60.             End,
  61.         End,
  62.     End
  63.  
  64.     tmp_object.app             := app
  65.     tmp_object.wi_smallexample := wi_smallexample
  66.     tmp_object.grOUP_ROOT_0    := grOUP_ROOT_0
  67.     tmp_object.gr_lists        := gr_lists
  68.     tmp_object.lv_label_0      := lv_label_0
  69.     tmp_object.lv_label_1      := lv_label_1
  70.     tmp_object.gr_grp_1        := gr_grp_1
  71.     tmp_object.bt_ok           := bt_ok
  72.     tmp_object.bt_cancel       := bt_cancel
  73.  
  74.     IF tmp_object.app = NIL
  75.         Dispose( tmp_object )
  76.         tmp_object := NIL
  77.     ENDIF
  78.  
  79. ENDPROC tmp_object
  80.  
  81.  
  82.     /* This procedure deletes one app object */
  83. PROC dispose_app( tmp_object : PTR TO obj_app )
  84.  
  85.     Mui_DisposeObject( tmp_object.app )
  86.     Dispose( tmp_object )
  87.  
  88. ENDPROC
  89.  
  90.  
  91.     /* DoMethod() function */
  92. PROC doMethod( obj:PTR TO object, msg:PTR TO msg )
  93.  
  94. DEF h:PTR TO hook, o:PTR TO object, dispatcher
  95.  
  96.     IF obj
  97.         o := obj-SIZEOF object     /* instance data is to negative offset */
  98.         h := o.class
  99.         dispatcher := h.entry      /* get dispatcher from hook in iclass */
  100.         MOVEA.L h,A0
  101.         MOVEA.L msg,A1
  102.         MOVEA.L obj,A2           /* probably should use CallHookPkt, but the */
  103.         MOVEA.L dispatcher,A3    /*   original code (DoMethodA()) doesn't. */
  104.         JSR (A3)                 /* call classDispatcher() */
  105.         MOVE.L D0,o
  106.         RETURN o
  107.     ENDIF
  108.  
  109. ENDPROC NIL
  110.